package cn.csc.module.order.api.item;

import cn.csc.framework.common.pojo.CommonResult;
import cn.csc.module.order.api.item.dto.OrderItemRespDTO;
import cn.csc.module.order.enums.ApiConstants;
import io.swagger.annotations.Api;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;

import java.math.BigInteger;
import java.util.List;
import java.util.Map;

/**
 * @author liuchuang
 * @version 1.0
 * @modify
 * @since 2025/3/25 11:43
 */
@FeignClient(name = ApiConstants.NAME) // TODO fallbackFactory =
@Api(tags = "RPC 服务 - 订单子项")
public interface OrderItemApi {

    String PREFIX = ApiConstants.PREFIX + "/item";

    /**
     * 通过id列表获取订单子项列表
     *
     * @param ids 订单子项id列表
     * @return 订单状态
     */
    @GetMapping(PREFIX + "/getByIds")
    CommonResult<List<OrderItemRespDTO>> getByIds(@RequestParam("ids") List<BigInteger> ids);


    /**
     * 通过orderId列表获取订单子项列表
     *
     * @param  orderIds 订单id列表
     * @return 订单状态
     */
    @GetMapping(PREFIX + "/getByOrderIds")
    CommonResult<Map<BigInteger,List<OrderItemRespDTO>>> getByOrderIds(@RequestParam("orderIds") List<BigInteger> orderIds);

    /**
     * 通过orderId列表获取订单子项列表,只返回订单项数据
     *
     * @param  orderIds 订单id列表
     * @return 订单状态
     */
    @GetMapping(PREFIX + "/getItemByOrderIds")
    CommonResult<List<OrderItemRespDTO>> getItemByOrderIds(@RequestParam("orderIds") List<BigInteger> orderIds);
}
